<?php

namespace Unl\HomologacionBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;


/**
* @ORM\Entity(repositoryClass="Unl\HomologacionBundle\Repository\RolRepository")
*/
class Rol
{
    /**
    * @ORM\Id
    * @ORM\Column(type="bigint")
    * @ORM\GeneratedValue(strategy="AUTO")
    */
    protected $id;

    /**
    * @ORM\Column(type="string", length=100)
    * @Assert\NotBlank(message = "El campo nombre no puede estar en blanco.")
    */
    protected $nombre;


    /**
    * @ORM\ManyToMany(targetEntity="Usuario", mappedBy="roles", cascade ={"persist"})
    */
    protected $usuarios;

    /**
    * @ORM\OneToMany(targetEntity="Permiso", mappedBy="rol", cascade={"all"}, orphanRemoval=true)
    */
    protected $permisos;

    public function __construct()
    {
        $this->usuarios = new \Doctrine\Common\Collections\ArrayCollection();
    $this->permisos = new \Doctrine\Common\Collections\ArrayCollection();
    }
    
    /**
     * Get id
     *
     * @return bigint 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Add usuarios
     *
     * @param Unl\HomologacionBundle\Entity\Usuario $usuarios
     */
    public function addUsuario($usuarios)
    {
        $this->usuarios[] = $usuarios;
    }

    /**
     * Get usuarios
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getUsuarios()
    {
        return $this->usuarios;
    }

    /**
     * Add permisos
     *
     * @param Unl\HomologacionBundle\Entity\Permiso $permisos
     */
    public function addPermiso($permisos)
    {
        $this->permisos[] = $permisos;
    }

    /**
     * Get permisos
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getPermisos()
    {
        return $this->permisos;
    }

    public function __toString()
    {
        return $this->id.' '.$this->nombre;
    }

}